As computers have become more powerful and sophisticated, they have been used to connect to certain devices that do not necessarily support a computer's file system functions, or that are not necessarily intended to be part of a computer's file system at all. For example, audio compact discs (CDs) were designed and developed to be played in a compact disc player, not in a computer system. However, most modern computers are equipped to read and play the music/data from an audio CD. Likewise, digital cameras are not typically viewed as computer system devices, yet digital cameras can be easily connected to most modern computers and the images stored on the camera can be read, written to, or deleted.
Computer file systems have traditionally been organized in a hierarchical structure. Generally, the hierarchical structure has at its source a root node (often identified as the computer system node), several devices or drives underneath the root node, and under each device or drive, a series of folders, subfolders, and files. The hierarchical file system's longevity is, in part, attributable to its ability to provide organization for files. However, many tasks that involve files distributed across multiple folders or devices do not find a hierarchical organization that easy to use.
FIGS. 1A and 1B are exemplary pictorial diagrams of typical, hierarchical computer file systems. As shown in FIG. 1A, the root node 102, corresponding to the computer system, includes three devices, namely a removable media drive 104, a hard drive 106, and CD-ROM drive 108. Of course, those skilled in the art will appreciate that the illustrated file system 100 is merely a user interface representation of an actual file system within the computer system.
As is typical with user interface representations of file systems, some of the information, i.e., subfolders or files, under a device or folder may be selectively hidden or displayed. For example, the box 120 showing a “+” is a visual indicator there is more information (either a file or subfolder) under the removable media drive 104. Usually, clicking on the box 120 reveals the hidden contents. Box 122, displaying a “−”, indicates that information on the level directly below the top level of the hard drive 106 are displayed, i.e., not hidden. Similarly, folder 110 is displaying its contents, including items 114-118, and folder 112 also is displaying its contained items.
As those skilled in the art will appreciate, when a user adds a device to the file system, or when a user inserts removable media into an existing device, such as adding a CD-ROM disc 134 to the CD-ROM drive 108, most file systems read the information on the media or device and dynamically expand the file system accordingly. Thus, as shown in FIG. 1B, when the CD-ROM disc 134 is inserted into the CD-ROM drive 108, the file system 100 displays the stored contents 124 of the CD-ROM disc, particularly files/items 126-130.
As mentioned above, due to their hierarchical organization, hierarchical file systems do not always lend themselves to various multi-file operations. Some of these operations include searching through files distributed in the hierarchy for common aspects. However, at least one emerging file system addresses such inefficiencies. In particular, Microsoft Corporation has announced a hybrid type file system, referred to as the WinFS file system, that combines a traditional hierarchical system with a database-like storage for the files. More specifically, while a hierarchical representation can be maintained to a user, if desired, the underlying file storage of WinFS operates more like a database of files/items. FIGS. 2A and 2B are pictorial diagrams illustrating aspects of a hybrid file system 200, such as the WinFS file system. As shown in FIG. 2A, the hybrid file system 200 includes a file storage area 202. Files, links, folders, subfolders, as well as most other information stored by a file system are found in the file storage area 202. As shown in FIG. 2A, the file storage area 202 contains various items, including item A 206, item B 208, item C 210, and item D 212. For illustration simplicity, it should be understood that items is a general term that may correspond to devices, drives, folders, subfolders, links, files, and the like that are stored by a file system.
As shown in FIG. 2A, the hybrid file system 200 also includes a metadata store 204. As the name suggests, the metadata store stores metadata corresponding to items in the file's storage area 202. As illustrated, each item in the file storage area has a corresponding metadata entry in the metadata store 204. Items 206-212 have corresponding entries in the metadata store, in particular, metadata items 214-220. As those skilled in the art will recognize, generally speaking, metadata is information about an item, but not the item itself. For example, with regard to an audio file, metadata corresponding to the audio file may describe the sampling rate of the file, the size of the file, the artist that created the work contained in the audio file, as well as numerous other aspects related to the audio file that are not part of the file itself.
The metadata stored in the metadata store 204 is usually not provided with the stored item, but must be generated by the file system when the file is added or modified. Generating metadata typically requires substantial computing time. Fortunately, most files are not constantly modified and the computer system can generate metadata for the files during computational idle times in a background process. However, to generate metadata, the metadata generator process typically requires that the item be present and readily accessible so that it can be examined and analyzed to generate the metadata. This presents a problem, however, when the item is on removable media, or when the item is on a device that does not support typical file system commands, such as a broadcasted data stream. For example, with reference to FIG. 2B, if item E 222 is added when removable media is inserted into a removable media drive, the file system 200 will add it into the file storage area 202, but may not be able to generate and store metadata corresponding to the item. In other words, for various reasons, the metadata generator process may not always be able to access an item in the background to generate the metadata.
In light of the above-described issues found in the prior art, what is needed is a system and method for providing robust file system information for items on non-native file system devices, and in particular, providing metadata for items on or from non-native file system devices. The present invention addresses these and other issues found in the prior art.